package com.gitee.qdbp.general.common.api.settings.model;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import com.gitee.qdbp.general.common.enums.ConfigDataType;

/**
 * 系统配置定制查询类
 *
 * @author zhh
 * @version 180809
 */
public class SystemConfigCustomizeWhere extends SystemConfigCustomizeBean {

    /** 版本序列号 **/
    private static final long serialVersionUID = 1L;

    /** 主键列表 **/
    private List<String> ids;

    /** 主键前模匹配条件 **/
    private String idStarts;

    /** 主键后模匹配条件 **/
    private String idEnds;

    /** 主键模糊查询条件 **/
    private String idLike;

    /** 上级主键空值/非空值查询 **/
    private Boolean parentIdIsNull;

    /** 上级主键列表 **/
    private List<String> parentIds;

    /** 上级主键前模匹配条件 **/
    private String parentIdStarts;

    /** 上级主键后模匹配条件 **/
    private String parentIdEnds;

    /** 上级主键模糊查询条件 **/
    private String parentIdLike;

    /** 租户编号空值/非空值查询 **/
    private Boolean tenantCodeIsNull;

    /** 租户编号前模匹配条件 **/
    private String tenantCodeStarts;

    /** 租户编号后模匹配条件 **/
    private String tenantCodeEnds;

    /** 租户编号模糊查询条件 **/
    private String tenantCodeLike;

    /** 使用场景空值/非空值查询 **/
    private Boolean sceneTypeIsNull;

    /** 使用场景前模匹配条件 **/
    private String sceneTypeStarts;

    /** 使用场景后模匹配条件 **/
    private String sceneTypeEnds;

    /** 使用场景模糊查询条件 **/
    private String sceneTypeLike;

    /** 数据类型(1.选项|2.列表)空值/非空值查询 **/
    private Boolean dataTypeIsNull;

    /** 数据类型(1.选项|2.列表)列表 **/
    private List<ConfigDataType> dataTypes;

    /** 配置项KEY列表 **/
    private List<String> configKeys;

    /** 配置项KEY前模匹配条件 **/
    private String configKeyStarts;

    /** 配置项KEY后模匹配条件 **/
    private String configKeyEnds;

    /** 配置项KEY模糊查询条件 **/
    private String configKeyLike;

    /** 配置项值(程序使用)空值/非空值查询 **/
    private Boolean configValueIsNull;

    /** 配置项值(程序使用)前模匹配条件 **/
    private String configValueStarts;

    /** 配置项值(程序使用)后模匹配条件 **/
    private String configValueEnds;

    /** 配置项值(程序使用)模糊查询条件 **/
    private String configValueLike;

    /** 配置项值的显示文本空值/非空值查询 **/
    private Boolean configTextIsNull;

    /** 配置项值的显示文本前模匹配条件 **/
    private String configTextStarts;

    /** 配置项值的显示文本后模匹配条件 **/
    private String configTextEnds;

    /** 配置项值的显示文本模糊查询条件 **/
    private String configTextLike;

    /** 最小创建时间 **/
    private Date createTimeMin;

    /** 最大创建时间 **/
    private Date createTimeMax;

    /** 最小创建时间 **/
    private Date createTimeMinWithDay;

    /** 最大创建时间 **/
    private Date createTimeMaxWithDay;

    /** 最小修改时间 **/
    private Date updateTimeMin;

    /** 最大修改时间 **/
    private Date updateTimeMax;

    /** 最小修改时间 **/
    private Date updateTimeMinWithDay;

    /** 最大修改时间 **/
    private Date updateTimeMaxWithDay;

    /** 获取主键列表 **/
    public List<String> getIds() {
        return ids;
    }

    /** 设置主键列表 **/
    public void setIds(List<String> ids) {
        this.ids = ids;
    }

    /** 增加主键 **/
    public void addId(String... ids) {
        if (this.ids == null) {
            this.ids = new ArrayList<>();
        }
        this.ids.addAll(Arrays.asList(ids));
    }

    /** 获取主键前模匹配条件 **/
    public String getIdStarts() {
        return idStarts;
    }

    /** 设置主键前模匹配条件 **/
    public void setIdStarts(String idStarts) {
        this.idStarts = idStarts;
    }

    /** 获取主键后模匹配条件 **/
    public String getIdEnds() {
        return idEnds;
    }

    /** 设置主键后模匹配条件 **/
    public void setIdEnds(String idEnds) {
        this.idEnds = idEnds;
    }

    /** 获取主键模糊查询条件 **/
    public String getIdLike() {
        return idLike;
    }

    /** 设置主键模糊查询条件 **/
    public void setIdLike(String idLike) {
        this.idLike = idLike;
    }

    /** 判断上级主键是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getParentIdIsNull() {
        return parentIdIsNull;
    }

    /**
     * 设置上级主键空值查询(true:空值查询|false:非空值查询)
     *
     * @param parentIdIsNull 上级主键空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setParentIdIsNull(Boolean parentIdIsNull) {
        this.parentIdIsNull = parentIdIsNull;
    }

    /** 获取上级主键列表 **/
    public List<String> getParentIds() {
        return parentIds;
    }

    /** 设置上级主键列表 **/
    public void setParentIds(List<String> parentIds) {
        this.parentIds = parentIds;
    }

    /** 增加上级主键 **/
    public void addParentId(String... parentIds) {
        if (this.parentIds == null) {
            this.parentIds = new ArrayList<>();
        }
        this.parentIds.addAll(Arrays.asList(parentIds));
    }

    /** 获取上级主键前模匹配条件 **/
    public String getParentIdStarts() {
        return parentIdStarts;
    }

    /** 设置上级主键前模匹配条件 **/
    public void setParentIdStarts(String parentIdStarts) {
        this.parentIdStarts = parentIdStarts;
    }

    /** 获取上级主键后模匹配条件 **/
    public String getParentIdEnds() {
        return parentIdEnds;
    }

    /** 设置上级主键后模匹配条件 **/
    public void setParentIdEnds(String parentIdEnds) {
        this.parentIdEnds = parentIdEnds;
    }

    /** 获取上级主键模糊查询条件 **/
    public String getParentIdLike() {
        return parentIdLike;
    }

    /** 设置上级主键模糊查询条件 **/
    public void setParentIdLike(String parentIdLike) {
        this.parentIdLike = parentIdLike;
    }

    /** 判断租户编号是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getTenantCodeIsNull() {
        return tenantCodeIsNull;
    }

    /**
     * 设置租户编号空值查询(true:空值查询|false:非空值查询)
     *
     * @param tenantCodeIsNull 租户编号空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setTenantCodeIsNull(Boolean tenantCodeIsNull) {
        this.tenantCodeIsNull = tenantCodeIsNull;
    }

    /** 获取租户编号前模匹配条件 **/
    public String getTenantCodeStarts() {
        return tenantCodeStarts;
    }

    /** 设置租户编号前模匹配条件 **/
    public void setTenantCodeStarts(String tenantCodeStarts) {
        this.tenantCodeStarts = tenantCodeStarts;
    }

    /** 获取租户编号后模匹配条件 **/
    public String getTenantCodeEnds() {
        return tenantCodeEnds;
    }

    /** 设置租户编号后模匹配条件 **/
    public void setTenantCodeEnds(String tenantCodeEnds) {
        this.tenantCodeEnds = tenantCodeEnds;
    }

    /** 获取租户编号模糊查询条件 **/
    public String getTenantCodeLike() {
        return tenantCodeLike;
    }

    /** 设置租户编号模糊查询条件 **/
    public void setTenantCodeLike(String tenantCodeLike) {
        this.tenantCodeLike = tenantCodeLike;
    }

    /** 判断使用场景是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getSceneTypeIsNull() {
        return sceneTypeIsNull;
    }

    /**
     * 设置使用场景空值查询(true:空值查询|false:非空值查询)
     *
     * @param sceneTypeIsNull 使用场景空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setSceneTypeIsNull(Boolean sceneTypeIsNull) {
        this.sceneTypeIsNull = sceneTypeIsNull;
    }

    /** 获取使用场景前模匹配条件 **/
    public String getSceneTypeStarts() {
        return sceneTypeStarts;
    }

    /** 设置使用场景前模匹配条件 **/
    public void setSceneTypeStarts(String sceneTypeStarts) {
        this.sceneTypeStarts = sceneTypeStarts;
    }

    /** 获取使用场景后模匹配条件 **/
    public String getSceneTypeEnds() {
        return sceneTypeEnds;
    }

    /** 设置使用场景后模匹配条件 **/
    public void setSceneTypeEnds(String sceneTypeEnds) {
        this.sceneTypeEnds = sceneTypeEnds;
    }

    /** 获取使用场景模糊查询条件 **/
    public String getSceneTypeLike() {
        return sceneTypeLike;
    }

    /** 设置使用场景模糊查询条件 **/
    public void setSceneTypeLike(String sceneTypeLike) {
        this.sceneTypeLike = sceneTypeLike;
    }

    /** 判断数据类型(1.选项|2.列表)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getDataTypeIsNull() {
        return dataTypeIsNull;
    }

    /**
     * 设置数据类型(1.选项|2.列表)空值查询(true:空值查询|false:非空值查询)
     *
     * @param dataTypeIsNull 数据类型(1.选项|2.列表)空值查询
     * @deprecated 该字段为非空字段
     */
    @Deprecated
    public void setDataTypeIsNull(Boolean dataTypeIsNull) {
        this.dataTypeIsNull = dataTypeIsNull;
    }

    /** 获取数据类型(1.选项|2.列表)列表 **/
    public List<ConfigDataType> getDataTypes() {
        return dataTypes;
    }

    /** 设置数据类型(1.选项|2.列表)列表 **/
    public void setDataTypes(List<ConfigDataType> dataTypes) {
        this.dataTypes = dataTypes;
    }

    /** 增加数据类型(1.选项|2.列表) **/
    public void addDataType(ConfigDataType... dataTypes) {
        if (this.dataTypes == null) {
            this.dataTypes = new ArrayList<>();
        }
        this.dataTypes.addAll(Arrays.asList(dataTypes));
    }

    /** 获取配置项KEY列表 **/
    public List<String> getConfigKeys() {
        return configKeys;
    }

    /** 设置配置项KEY列表 **/
    public void setConfigKeys(List<String> configKeys) {
        this.configKeys = configKeys;
    }

    /** 增加配置项KEY **/
    public void addConfigKey(String... configKeys) {
        if (this.configKeys == null) {
            this.configKeys = new ArrayList<>();
        }
        this.configKeys.addAll(Arrays.asList(configKeys));
    }

    /** 获取配置项KEY前模匹配条件 **/
    public String getConfigKeyStarts() {
        return configKeyStarts;
    }

    /** 设置配置项KEY前模匹配条件 **/
    public void setConfigKeyStarts(String configKeyStarts) {
        this.configKeyStarts = configKeyStarts;
    }

    /** 获取配置项KEY后模匹配条件 **/
    public String getConfigKeyEnds() {
        return configKeyEnds;
    }

    /** 设置配置项KEY后模匹配条件 **/
    public void setConfigKeyEnds(String configKeyEnds) {
        this.configKeyEnds = configKeyEnds;
    }

    /** 获取配置项KEY模糊查询条件 **/
    public String getConfigKeyLike() {
        return configKeyLike;
    }

    /** 设置配置项KEY模糊查询条件 **/
    public void setConfigKeyLike(String configKeyLike) {
        this.configKeyLike = configKeyLike;
    }

    /** 判断配置项值(程序使用)是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getConfigValueIsNull() {
        return configValueIsNull;
    }

    /** 设置配置项值(程序使用)空值查询(true:空值查询|false:非空值查询) **/
    public void setConfigValueIsNull(Boolean configValueIsNull) {
        this.configValueIsNull = configValueIsNull;
    }

    /** 获取配置项值(程序使用)前模匹配条件 **/
    public String getConfigValueStarts() {
        return configValueStarts;
    }

    /** 设置配置项值(程序使用)前模匹配条件 **/
    public void setConfigValueStarts(String configValueStarts) {
        this.configValueStarts = configValueStarts;
    }

    /** 获取配置项值(程序使用)后模匹配条件 **/
    public String getConfigValueEnds() {
        return configValueEnds;
    }

    /** 设置配置项值(程序使用)后模匹配条件 **/
    public void setConfigValueEnds(String configValueEnds) {
        this.configValueEnds = configValueEnds;
    }

    /** 获取配置项值(程序使用)模糊查询条件 **/
    public String getConfigValueLike() {
        return configValueLike;
    }

    /** 设置配置项值(程序使用)模糊查询条件 **/
    public void setConfigValueLike(String configValueLike) {
        this.configValueLike = configValueLike;
    }

    /** 判断配置项值的显示文本是否为空值查询(true:空值查询|false:非空值查询) **/
    public Boolean getConfigTextIsNull() {
        return configTextIsNull;
    }

    /** 设置配置项值的显示文本空值查询(true:空值查询|false:非空值查询) **/
    public void setConfigTextIsNull(Boolean configTextIsNull) {
        this.configTextIsNull = configTextIsNull;
    }

    /** 获取配置项值的显示文本前模匹配条件 **/
    public String getConfigTextStarts() {
        return configTextStarts;
    }

    /** 设置配置项值的显示文本前模匹配条件 **/
    public void setConfigTextStarts(String configTextStarts) {
        this.configTextStarts = configTextStarts;
    }

    /** 获取配置项值的显示文本后模匹配条件 **/
    public String getConfigTextEnds() {
        return configTextEnds;
    }

    /** 设置配置项值的显示文本后模匹配条件 **/
    public void setConfigTextEnds(String configTextEnds) {
        this.configTextEnds = configTextEnds;
    }

    /** 获取配置项值的显示文本模糊查询条件 **/
    public String getConfigTextLike() {
        return configTextLike;
    }

    /** 设置配置项值的显示文本模糊查询条件 **/
    public void setConfigTextLike(String configTextLike) {
        this.configTextLike = configTextLike;
    }

    /** 获取最小创建时间 **/
    public Date getCreateTimeMin() {
        return createTimeMin;
    }

    /** 设置最小创建时间 **/
    public void setCreateTimeMin(Date createTimeMin) {
        this.createTimeMin = createTimeMin;
    }

    /** 获取最大创建时间 **/
    public Date getCreateTimeMax() {
        return createTimeMax;
    }

    /** 设置最大创建时间 **/
    public void setCreateTimeMax(Date createTimeMax) {
        this.createTimeMax = createTimeMax;
    }

    /** 获取最小创建时间 **/
    public Date getCreateTimeMinWithDay() {
        return createTimeMinWithDay;
    }

    /** 设置最小创建时间 **/
    public void setCreateTimeMinWithDay(Date createTimeMinWithDay) {
        this.createTimeMinWithDay = createTimeMinWithDay;
    }

    /** 获取最大创建时间 **/
    public Date getCreateTimeMaxWithDay() {
        return createTimeMaxWithDay;
    }

    /** 设置最大创建时间 **/
    public void setCreateTimeMaxWithDay(Date createTimeMaxWithDay) {
        this.createTimeMaxWithDay = createTimeMaxWithDay;
    }

    /** 获取最小修改时间 **/
    public Date getUpdateTimeMin() {
        return updateTimeMin;
    }

    /** 设置最小修改时间 **/
    public void setUpdateTimeMin(Date updateTimeMin) {
        this.updateTimeMin = updateTimeMin;
    }

    /** 获取最大修改时间 **/
    public Date getUpdateTimeMax() {
        return updateTimeMax;
    }

    /** 设置最大修改时间 **/
    public void setUpdateTimeMax(Date updateTimeMax) {
        this.updateTimeMax = updateTimeMax;
    }

    /** 获取最小修改时间 **/
    public Date getUpdateTimeMinWithDay() {
        return updateTimeMinWithDay;
    }

    /** 设置最小修改时间 **/
    public void setUpdateTimeMinWithDay(Date updateTimeMinWithDay) {
        this.updateTimeMinWithDay = updateTimeMinWithDay;
    }

    /** 获取最大修改时间 **/
    public Date getUpdateTimeMaxWithDay() {
        return updateTimeMaxWithDay;
    }

    /** 设置最大修改时间 **/
    public void setUpdateTimeMaxWithDay(Date updateTimeMaxWithDay) {
        this.updateTimeMaxWithDay = updateTimeMaxWithDay;
    }

}